package demo07;

import java.util.concurrent.TimeUnit;

class Phone {
    public static synchronized void sendEmail() throws Exception {
        TimeUnit.SECONDS.sleep(4);
        System.out.println("---send Email---");
    }

    public synchronized void sendSMS() throws Exception {
        System.out.println("---send SMS---");
    }
    public void sayHello() throws Exception {
        System.out.println("----sayHello----");
    }
}

/**
 * 8 lock
 * 1 标志访问，请问先打印邮件还是短信？不一定
 * 2 邮件方法暂停4秒，请问先打印邮件还是短信？邮件
 * 3 新增普通sayHello方法，请问先打印邮件还是hello? hello
 * 4 两部手机，请问先打印邮件还是短信? 邮件
 * 5 两个静态同步方法，同一部手机，请问先打印邮件还是短信？邮件
 * 6 两个静态同步方法，两部手机，请问先打印邮件还是短信？邮件
 * 7 一个静态同步方法，一个普通同步方法，同一部手机，请问先打印邮件还是短信？SMS          ************* 不会
 */
public class Lock8Demo05 {
    public static void main(String[] args) throws InterruptedException{
        Phone phone = new Phone();
        new Thread(() -> {
            try {
                phone.sendEmail();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }, "A").start();

        Thread.sleep(1000);

        new Thread(() -> {
            try {
                phone.sendSMS();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }, "B").start();
    }
}
